How to Unlock the LCD and OLED Steam Deck BIOS for Increased TDP and Other Features

It feels like a very long time ago when all we had to do to gain additional features in the Steam Deck bios, was to run a compiled C program.

There is a lot of detail in the original blog post I wrote on this, and you should read it.

Since then as a community we have found ways to recover the Steam Deck BIOS, whether that is through binary editing, or looking through code to find the recovery mechanism.

Valve have also, very clearly and evidently, prevented people from tinkering with the Steam Deck BIOS. I have no doubt that the vast majority of people that found out how to unlock these options, in the innocent pursuit of gaining more performance, bricked their Steam Deck by going too far, and then pulled Valve up on their RMA and warranty claim to have it repaired. A lot of these guides did not cover how to backup your BIOS, and that you would need a chip programmer to recover from a bricked condition with the Steam Deck. While we do have a crisis mode that can recover from settings the majority of the time, there are still occasions when it will and cannot recover.

Though we now have a method of getting access to these forms again, it works on each current Steam Deck BIOS version, F7A0131 and F7G0109 / F7G0110.

Before I go into detail about how we can get these options back into your BIOS, I am going to say the same again.

Backup your Steam Deck BIOS Before Tinkering With It

Boot your Steam Deck, press the STEAM button, and choose the Power option. If you have Family View turned on, then enter the pass code. Then do it again and choose Switch to Desktop.

When you are in the desktop, open up a Konsole terminal and type in the following:

sudo /usr/share/jupiter_bios_updater/h2offt /home/deck/biosbkp.fd -O

Steam Deck BIOS Backup command

This will backup your BIOS in your home folder. If you do not know what ‘sudo is, then you should read this wiki article: https://wiki.archlinux.org/title/sudo

To use the ‘sudo’ command, before the ‘h2offt’ backup program command, you have to set a password for your ‘deck’ user account in linux. You do this from a konsole terminal by typing:

passwd

Be careful what you type, and make a note of the password. It will not show you what you are typing while you are typing it.

Then, make sure you copy and backup the file ‘biosbkp.fd‘ somewhere safe, that is not on your Steam Deck, and do not share it with others.

I have Backed up my BIOS – Can I Unlock the Options Now?

I thank SmokeyCPU for the tools used for this, and to ‘vinegar_sigma’, ‘sub5ist’ and mytrixx for sharing their knowledge, time, effort, and being interested (that goes a longer way than you think). We have this thanks to each of them and ‘vinegar_sigma’ for putting it together.

You will need either a Steam Deck Dock, or a USB-A to USB-C adapter for your USB Storage, or a USB-C capable USB Storage for this to work.

Let us go through the steps that you need to do to prepare

  1. Format a USB storage drive to FAT32
  2. Download this ZIP file if you have an LCD Steam Deck, or this ZIP file if you have an OLED Steam Deck
  3. Extract the files to your USB storage drive
  4. For simplicity, put the files in the root directory of your drive, rather than in the sub folder

These files will now be on your USB Storage:

  • runtime-patcher.efi
  • cbs.efi
  • pbs.efi
  • srep_config.cfg

You require the above stated files as a minimum. You will also have a couple of additional files:

  • _readme.txt
  • _timings.jpg

The readme.txt gives you similar steps and instructions that you will find in this blog post, along with credits. It also covers a few caveats about the alterations.

Sub5ist tested these settings presented in the timings.jpg to tweak and alter RAM timings for the OLED Steam Deck in hexadecimal, and they helped improve system performance and frame-rate. You can see the results of these tweaks in a geekbench report for your comparison.

Note:

You will note that I have uploaded a zip file for the OLED Steam Deck, and for the LCD Steam Deck. You could use these interchangeably.

From various feedback I had included a cbs-full.efi in the LCD/OLED 7zip file, as the file I was using worked without crashing, but the one in the zip file had problems for people. This is now removed from the zip file, if you want you may try these that are from other versions of the BIOS for OLED and LCD.

The hanging/crashing may be because it is attempting to save to other form(s) or varstore(s) that need to be recovered/reinstated. So therefore, use it at your own risk. Not all features may currently be supported on the ‘full’ form, but some may be, by all means provide any feedback on your findings while we all look into it.

Booting into the BIOS

There are a few simple steps to this process now that we have the USB Storage setup. It matters which order you do them. Here they are:

  • Turn off your Steam Deck
  • Connect your USB Storage to the Steam Deck
  • Press the Volume + and Power buttons together
  • Navigate the Steam Deck menu with the directional pad
  • Press A on “Boot From File
Steam Deck BIOS Options
Steam Deck BIOS Options

You should now see a list of your efi options.

File Explorer in Steam Deck BIOS
File Explorer in Steam Deck BIOS

This may be different on your Steam Deck, if you dual boot with Windows, have a number of different Operating Systems installed, etc. If you have not labelled your USB Storage, you should see it listed here as ‘NO VOLUME LABEL’, or as your label if it has it.

Loading the Overrides

  • Use the directional pad to highlight your USB Storage
  • Either press A or press Right on the directional pad

Now we should see a list of the files:

Steam Deck BIOS File Explorer, efi files
File Explorer, efi files

You may notice that I have two ‘cbs.efi’ files here, that is because I have two different versions on the same USB Storage. You will see the file:

  • cbs.efi which is the latest neutered form from the latest bios

Now we perform the following steps:

  • Use the directional pad to highlight runtime-patcher.efi
  • Press the A button

This will run SmokeyCPU’s Smokeless Runtime EFI Patcher. I will go into detail about what it is doing later.

Smokeless EFI Patcher
Smokeless Runtime EFI Patcher

The system then returns you to the file explorer.

Note: Only do one of the following depending on which form you want to load:

If you want to load the AMD CBS form:

  • Use the directional pad to highlight cbs.efi
  • Press the A button

A full cbs.efi is known to crash and hang the Steam Deck to make it unresponsive when trying to save and exit. This may be because other overrides or edits need to be made. Use it at your own risk.

If you want to load the AMD PBS form:

  • Use the directional pad to highlight pbs.efi
  • Press the A button

The AMD CBS form has the RAM timings and CPU and GPU overclock settings in it. The overclock settings link with those exposed in the Advanced form in the BIOS.

Note: These will not display text when they are loading.

Now press the B button to quit out of the menu, and select the Setup Utility with the A button.

Now, you should see that the AMD CBS menu has loaded, and under the Advanced menu, you can also change the Fast PPT Limit, and Slow PPT Limit to higher than the stated 15000mW.

Fast and Slow PPT Limits
Fast and Slow PPT Limits Raised

Note: You do not need Smokeless UMAF, you are directly raising the limits above 15000mW

When you boot into Steam OS, you can run the following commands from a Konsole Terminal to check that these limits are raised:

sudo cat /sys/class/hwmon/hwmon6/power1_cap_default
sudo cat /sys/class/hwmon/hwmon6/power2_cap_default

or

sudo cat /sys/class/hwmon/hwmon4/power1_cap_default
sudo cat /sys/class/hwmon/hwmon4/power2_cap_default

The hwmon value (4, 5, 6) may change depending on whether or not your Steam Deck is docked/connected to a hub.

These values are read from what the BIOS reports, and you cannot typically change them from within SteamOS. You will still be limited if you do not change power[1/2]_cap – these are reinforced to be 15w by the performance tab in SteamOS on game load. You can set the value manually or use PowerTools in the Decky plugin. There is more information on this in my other blog.

You will also see that the AMD CBS menu is accessible from the left hand side menu.

AMD CBS in Steam Deck LCD Bios
AMD CBS Menu in the Steam Deck LCD Bios

As a reminder, you can try loading the LCD Steam Deck cbs.efi on the Steam Deck OLED, but it may hang or crash your Steam Deck, forcing you to power it off. Any changes made may not be correct for the Steam Deck OLED, though they should still work. We believe this may be related to the BIOS VarStore and it requires some investigation.

The Steam Deck OLED BIOS also introduced the ability to overclock the GPU and CPU in BIOS F7G0109 that is also accessible in the F7G0110 BIOS via the Advanced menu. The Steam Deck LCD BIOS recently introduced thr same ability in BIOS F7A0131. You should update to this BIOS to take advantage of the ability to increase the TDP with the efi runtime patcher.

Note: If you want to alter or change any settings again, you must follow the steps to load the .efi files from the USB Storage again. These are temporary changes to load the menus, but the menus make permanent changes that are only cleared by a Valve BIOS update or Crisis Mode recovery.

Help, I Need to Recover My Steam Deck!

Try as we may, it is still possible to break your Steam Deck by changing settings in these menus. If you have a BIOS backup you can recover using it. Or you can recover using Crisis Mode.

Please refer to my other blog post and search through it for Crisis Mode recovery.

How do I Overclock my RAM on the Steam Deck?

Backup your BIOS first. Understand that you may need a chip programmer to recover if the settings go bad, otherwise you can restore with the Crisis Mode recovery.

Your RAM in the Steam Deck is under-clocked, unless you have an early version of the Steam Deck LCD with 5500mt/s timed RAM, the typical Steam Deck LCD has RAM (Samsung or Micron) that should run at 6400mt/s. The OLED Steam Deck Micron RAM is also under-clocked, it has a max speed of 8533mt/s, but the Steam Deck APU cannot push it high enough, there have been some experiments with editing the BIOS to try to allow it to go higher, and so far those have been unsuccessful.

With the cut-down CBS form injected into the BIOS you can set faster RAM timings for both the Steam Deck LCD and Steam Deck OLED. I have recently discovered that the Steam Deck OLED can have Samsung (K3KL3L30CM-MGCT) and Micron RAM (MT62F1G64D4AH-023 WT).

You can find out which type of RAM your Steam Deck runs by typing the following command at a konsole terminal:

sudo dmidecode –type 17

Here are timings you can use for the Steam Deck LCD with Samsung RAM (K3LKBKB0BM-MGCP / K3LK7K70BM-BGCP000):

Steam Deck LCDSamsung
Clock speed 3200 Mhz
Trcdrd 0Сh Clk.
Trcdwr 0Eh Clk.
TrrdS 4 clk
TrrdL 4 clk
Tfaw 10
Trp 9 Clk. (Bh)
Tras 16h Clk.
Trc Ctrl Manual
Trc 0x20
TwtrS 4 Clk.
TwtrL 6 Clk.
Tcke 5 Clk.
Trdwr 0Dh Clk. (Eh)
Twrrd 7 Clk. (8)

crash2032, Steam Deck Discordinvite link

Steam Deck LCD – Samsung
Clock Speed 3200 Mhz
Trcdrd 0Сh Clk
Trcdwr 0Eh Clk
Trp 0Bh Clk
Trc 0x28
TwtrS 4 Clk
TwtrL 6 Clk
TrdrdScL 0x3
TwrwrScL 0x3
Trtp 5 Clk.
Tras 17h
Trdwr 0Eh

Ew Meh, Steam Deck Discord, invite link

Samsung Deck LCD – Micron MT62F1G32D4DR-031 WT
Tcrdrd – 0Bh clk
tcrdwr – 0D clk
trp – 0Bh clk
tras – 17h clk
trc – 0x23
twtrS – 4 clk
twtrL – 6 clk
trtp – 5 clk

Ew Meh, Steam Deck Discord, invite link

Steam Deck OLED – Micron MT62F1G64D4AH-023 WT
TRCDRD 0Ch
TRCDWR 8
TRP 9
TRAS 15
TRC (MANUAL) 0x20
TRRDS 4*
TRRDL 4*
TFAW (MANUAL) 0x10
TWTRS 2
TWTRL 6
TWR (MANUAL) 1A
TRTP 5
TRDWR 0Ch
TWRWRSD 1
TWRWRDD 1
TRDRDSD 1
TRDRDDD 1

sub5ist, Steam Deck Discordinvite link

I have not seen recommended timings for the OLED Samsung RAM.

Where Are These EFI Files From?

You are probably wondering how this is done, and where the .efi files are from? The simple answer is: they are from the Steam Deck BIOS released by Valve, and they are from SmokeyCPU that has been configured by ‘vinegar_sigma’.

The Steam Deck BIOS files are all available from Valve directly in their repositories, these have been mirrored by the evlaV repo, but they are also directly available in locations such as:

https://steamdeck-packages.steamos.cloud/archlinux-mirror/jupiter-main/os/x86_64

Here, we have the ‘hardware support files’ which are named something like:

jupiter-hw-support-xxxxxxx.x-x-any.pkg.tar.xz or

jupiter-hw-support-xxxxxxx.x-x-any.pkg.tar.zst

Where “xxxxxxx” is the date, in the format of yyymmdd (year, month, date) and then a version. When you extract these files, you get the BIOS update files that your Steam Deck downloads, and these files go way back in versions.

You can also find your Steam Deck BIOS in the following folder, both the LCD and OLED BIOS are stored here:

/usr/share/jupiter_bios/

That does not entirely answer the question though, you see the Steam Deck uses a UEFI BIOS, and these are almost becoming like a ‘Real Time Operating System’ themselves, they have drivers, configurations, and a virtual ‘cmos’ or ‘nvram’ is used with an embedded micro-controller (as it is in the Steam Deck) where these settings are stored.

To dissect these BIOS files, we need to understand the file and their structures, and thanks to some open source tools such as UEFI Tool, we can open them up.

UEFI Tool with the Steam Deck OLED BIOS F7G0005_sign.fd

Inside the UEFI BIOS we have what are called ‘forms’, along with drivers and other files. What we are interested in are the ‘CBS’ and ‘PBS’ forms, and using the search capabilities in UEFI Tool we can find these forms, and it’s the ‘PE32 image section’ we are interested in for it to work with Smokeless EFI Runtime Patcher.

When we store these .efi files on the USB Storage, and load them after running the Smokeless EFI Runtime Patcher, we allow the forms to load and override what is already loaded by the BIOS (or not loaded as the case may be).

Therefore, if you do not trust what is in the zip file here, you can go and find your Steam Deck BIOS and extract these forms yourself, from the current version or previous, and load them up.

What About Smokeless EFI Runtime Patcher?

SmokeyCPU wrote a tool that allows for two fundamental components:

  • We unlock the forms that we want to show
  • We load, or reload the forms so we can change the contents

If you open up SREP_Config.cfg you will see exactly what we are doing with this tool, once you open the file up you will see some commands, so to explain what they do:

  • Open the H2OFormBrowserDxe form
  • Patch the H2OFormBrowserDxe so that it will enable AMD CBS and AMD PBS
  • Open the SetupUtility form
  • Patch the SetupUtility so that it allows for a higher TDP for PPT Fast and Slow to be set
  • Load the SetupUtility from FV
  • Open the SetupUtility form

The patches refer to the UEFI Forms that we want to enable in hexadecimal, these are the hexadecimal conversions of the UEFI Form GUID as seen in UEFI Tool, and they are an alternate method of performing the SmokeyCPU unlock that we ran as a compiled executable.

We also then patch the SetupUtility form, because Valve hard-coded a limit of 15000mW for the maximum Fast PPT, and Slow PPT. There is a caveat with this, for some reason insydeh2obios is compiled little endian, that means the bit pattern is reversed. This means that the hexadecimal patch in the code also had to be reversed, referring to 15000 as 983A, as opposed to 3A98. The rest of the hexadecimal in the line is kept ‘as it is’ in the form.

If you want to align and see how these hexadecimal modifications align with the .efi files, then use UEFITool to extract the forms from the BIOS and use HxD to search for the values and you will see where the amendments are made for yourself.

Do you want to flash the BIOS?

How to Update or Flash your Steam Deck BIOS from Crisis Mode

Anyone that is familiar with InsydeH2O® UEFI BIOS will know that it has a ‘crisis mode’. The crisis mode allows you to re-flash the BIOS if it bricks itself. We thought that the Steam Deck maybe had this mode, or maybe it did not. We did not know what the name of the file had to be on the USB storage to get it to work! In fact, maybe it also looks at the microSD card? Anyway, here is how to flash your Steam Deck BIOS in crisis mode.

If you simply want to update or revert your Steam Deck BIOS; or perhaps you have set bad BIOS options, then you will want to try this out. Before considering paying out to Valve or returning to Valve via RMA for repair or replacement. If you have outright ‘bricked’ your Steam Deck, and you have a chip programmer then you will want to use that to recover it. Or if you do not have a backup then you can put one together. You can still try this method out before going that far.

To follow this process, you will need a USB storage device, and a means to connect that to your Steam Deck. Either via a USB hub, or USB Dock, or using direct USB-C storage. The size of it needs to be at least 32 megabytes (yes, megabytes, you are only storing the BIOS file on it which is 16 megabytes approximately). It can be larger than 32 megabytes, but ideally blank with no other files on it.

Note: This does not clear or wipe your Steam Deck’s storage. It only affects the Winbond SPI flash BIOS chip. As this is an official method of updating the BIOS, and so long as you use trusted BIOS files, and the correct file, and it is not interrupted, no harm will come to your Steam Deck.

As an overview here are the steps:

  • Format any USB storage to FAT32, on a Windows PC. (Or if you have Linux and know how, you can do so there too).
  • Download the BIOS file that’s relevant for your Steam Deck
  • Boot into Crisis mode with the USB Storage attached
  • Follow the prompts (if there are any) and flash your BIOS
  • Enjoy the flashed Steam Deck

Where do I get the Steam Deck BIOS file?

For the Steam Deck LCD your BIOS file starts with F7A. For the Steam Deck OLED, it starts with F7G.

The BIOS files are available directly from Valve from this site:

https://steamdeck-packages.steamos.cloud/archlinux-mirror/jupiter-main/os/x86_64/

They’re in a file named something like:

jupiter-hw-support-xxxxxxx.x-x-any.pkg.tar.xz or

jupiter-hw-support-xxxxxxx.x-x-any.pkg.tar.zst

Where “xxxxxxx” is a date, in the format of yyyymmdd (year, month, date) and then version. There are also .sig files, which are ‘signatures’ to verify the file, we do not need these for now. You typically want the most recent version of the file, but of course older versions contain older BIOS versions.

For the Steam Deck LCD do not use BIOS versions before version F7A0105. For the OLED do not use versions before F7G0105. The 105 version for is the version used ‘at release’ of the Steam Deck, both versions.

The BIOS file is in the path usr -> share -> jupiter_bios directory tree in the archive. You want the file name that ends in the extension .fd. It will have a name such as F7A0121_sign.fd or F7G0109.fd.

If you have trouble opening the file that you have downloaded from Valve, you can also find the files at the evlaV gitlab repo.

On the USB storage / pen drive, you need to rename your BIOS file, for the LCD Steam Deck it should be:

  • F7ARecovery.fd

For the Steam Deck OLED name it:

  • F7GRecovery.fd

How to Flash the Steam Deck BIOS from Crisis Mode

Make sure that your Steam Deck is fully charged. Or plugged into a dock with external power while flashing the BIOS. Do not remove the power, or remove the USB storage while flashing the BIOS.

  • Do not have any other USB storage connected to the Steam Deck than the one with the BIOS file. Having your SSD installed and inserted into the nvme m.2 bay should be fine.
  • Make sure that the Steam Deck is shut down. Hold the power button for 10 seconds if it is already turned on.
  • Check that the unit is off, track pads should have no haptic feedback. The fan should not be on, and the screen should not be lit
  • While holding the Volume – and “. . .” buttons, press the power button once.
  • You can keep the Volume – and “. . .” buttons pressed a few seconds after letting go of the power button to be sure, then let go.
  • Your Steam Deck screen will remain black for a bit, and the power LED should constantly flash on and off. You will see some text at the bottom of the screen.

Note: As of Steam Deck LCD BIOS F7A0131, entering the crisis mode combination has changed behavior, and it may go into battery storage mode first. This means the Steam Deck will turn off and require you to plug in mains power for it to turn back on.

What Happens Now?

This option should then appear (though for some people, it apparently can skip this entirely):

BIOS flash prompt
On Screen Prompt to Flash Steam Deck BIOS

If you do not get this far, the file on the USB storage is either incorrect, or not named correctly.

You can navigate this pop-up with the track pad, or the d-pad. From this prompt, basically select ‘Yes’ to continue, or ‘No’ to stop. If you do not see this prompt, it will continue to move on to flash the Steam Deck BIOS.

If you are trying to recover your Steam Deck and flashing ‘blindly’ you can press the A button for it to continue at this prompt. You will have to wait to see if it has been able to continue successfully, it helps if your USB storage has an activity LED because you will see it flash as it reads the file from it.

Your screen should now change to show the h2offt flash firmware tool, and it may be in portrait mode:

h2offt BIOS Flash firmware tool

This will take some time to complete. Your Steam Deck will reboot after it has successfully flashed. Make sure not to remove the storage or power (if connected) during the flash.

Thanks to ghidra, and HxD for confirming what the blasted recovery filename should be. Make sure that you make a BIOS backup in future. Having a ‘dump’ of your BIOS chip and restoring with a chip programmer can still be necessary under some circumstances.

Steam Deck in Case

Unbricking your Steam Deck without a BIOS Backup

Before trying this method, you should check out this post which should allow you to recover your Steam Deck with Valve’s BIOS update files in some circumstances.

This post was originally available on Reddit but is no longer available. It is replicated here because it has helped save a number of people from having to RMA their Steam Deck. The original post also supplied a ‘cleaned’ BIOS file. Unfortunately it was stored on a Google Drive and the file has been removed.

“Hey guys,

So you, like me, went too hard on the undervolting and ended up bricking your SD. And worst, you didn’t make a backup of your BIOS beforehand?

Fear not, it’s is possible to recover your SD even without a BIOS backup, I just did it to mine.

You’re going to need a CH341A SPI chip programmer. More details on how to use it, please refer to this guide by /u/Interesting-Bag-6206:

https://www.reddit.com/r/SteamDeck/comments/123ml95/how_to_reflash_your_steam_deck_bios_chip/

Here there’s another guide on how to read and write the BIOS on windows and Linux https://jensd.be/980/linux/bios-or-spi-programming-on-windows-or-linux-using-a-ch341a

Download the bios file direct from here: https://gitlab.com/evlaV/jupiter-hw-support/-/tree/master/usr/share/jupiter_bios

Editor’s Note: You should download a BIOS version higher than 110 unless you have an EV2 device.

First Step

Unzip the file and go to /usr/share/jupiter_bios/ open F7A0115_sign.fd using a HEX editor. In my case I’m using Bless, for linux. This is what you’re going to see:

Hex Readout

Search for $_IFLASH_BIOSIMG and delete everythign before ….( 02 02 00 02 28 in hexadecimal

Hex Readout

This is what should look like. The first 5 hexadecimal digits should be 02 02 00 02 28 like in the picture below.

Hex Readout

Then go to line 00ffffec on your hex editor. Delete everything after the last FF.

Hex Readout

This is how it should look like after

Hex Readout

Save the file, this is the “clean” file I’m making available above.

Second Step

You need to dump your “corrupted” bios using the guides.

DO NOT UNDER ANY CIRCUMSTANCE OVERWRITE YOUR BIOS BEFORE DUMPING IT

You will need your original BIOS file to be able to restore your deck. If you overwrite it now with the “clean” BIOS is GAME OVER.

Open your corrupted bios and make sure you have more than 1 backup of it just in case. You’re going to see a familiar sight.

Hex Readout

Search for $DMI on the hex editor (line 006a3fce).There are only 2 places where it appears. The first one is what you want. You Are going to see a block of info’ containing your Deck serial number, Controller ID, etc. Copy the entire block. It’s easy to see. It starts after an FF and ends before an FF.

Hex Readout

Open your “clean” BIOS file and replace the exact block, this is exactly what you have to replace

Hex Readout

Save your modified BIOS, and write it to the Deck. That’s it! It will take about a minute to boot the first time. After that it should be back in working condition.

Steam Deck in Case

DISCLAIMER: I’m not responsible for any damage you cause to your deck.”

This article was recovered via the web archive.

There’s a good python tool you can use hosted over on the evlaV gitlab repository that can help you prepare a bios file for flashing with a programmer, and also copy across your Steam Deck ID from a backup of a faulty BIOS before flashing a ‘fixed’ BIOS to recover from.

You can find more information about overclocking, undervolting and backing up your BIOS in my other blog post.